﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using System.Data.SqlClient;
namespace DAO
{
    public class ChiTiet_HoaDon_DAO
    {
        BanHang_LinQDataContext db = new BanHang_LinQDataContext();
        List<ChiTiet_HoaDon> listds = new List<ChiTiet_HoaDon>();

        // 1.phương thức lấy danh sách tất cả chi tiết hóa đơn
        public List<ChiTiet_HoaDon> LayDanhSach_ChiTietHoaDon()
        {
            List<ChiTiet_HoaDon> cthd = db.ChiTiet_HoaDons.Where(c => c.isDelete == 0).ToList();
            return cthd;
        }

        // 2.phương thức lấy thông tin chi tiết hóa đơn theo mã hóa đơn
        public ChiTiet_HoaDon LayThongTin_CTHDTheoMaHoaDon(int mahd)
        {
            ChiTiet_HoaDon cthd = db.ChiTiet_HoaDons.SingleOrDefault(h => h.MaHoaDon == mahd && h.isDelete == 0);
            return cthd;
        }

        // 3.phương thức lấy thông tin chi tiết hóa đơn theo mã khuyến mãi
        public List<ChiTiet_HoaDon> LayThongTin_CTHDTheoMaKhuyenMai(int makm)
        {
            List<ChiTiet_HoaDon> cthd = db.ChiTiet_HoaDons.Where(h => h.MaKhuyenMai == makm && h.isDelete == 0).ToList();
            return cthd;
        }

        // 4.phương thức lấy thông tin chi tiết hóa đơn theo giá khuyến mãi
        public ChiTiet_HoaDon LayThongTin_HoaDonTheoGiaKM(int giakm)
        {
            ChiTiet_HoaDon cthd = db.ChiTiet_HoaDons.SingleOrDefault(h => h.GiaKhuyenMai == giakm && h.isDelete == 0);
            return cthd;
        }

        // 5.phương thức thêm chi tiết hóa đơn 
        public bool Them_ChiTietHoaDon(ChiTiet_HoaDon cthd)
        {
            try
            {
                
                db.ChiTiet_HoaDons.InsertOnSubmit(cthd);
                db.SubmitChanges();
                return true;
            }
            catch (SqlException ex)
            {
                throw ex;
                return false;
            }
        }

        // 6.phương thức xóa chi tiết hóa đơn
        public bool Xoa_ChiTietHoaDon(ChiTiet_HoaDon cthd)
        {
            try
            {
                ChiTiet_HoaDon cthoadon = db.ChiTiet_HoaDons.SingleOrDefault(h => h.MaHoaDon == cthd.MaHoaDon && h.MaKhuyenMai == cthd.MaKhuyenMai);
                cthoadon.isDelete = 1;
                db.SubmitChanges();
                return true;
            }
            catch (SqlException ex)
            {
                throw ex;
                return false;
            }
        }

        // 7.phương thức sửa thông tin chi tiết hóa đơn
        public bool Sua_ChiTietHoaDon(ChiTiet_HoaDon cthd)
        {
            try
            {
                ChiTiet_HoaDon cthoadon = db.ChiTiet_HoaDons.SingleOrDefault(h => h.MaHoaDon == cthd.MaHoaDon && h.MaKhuyenMai == cthd.MaKhuyenMai);
                cthoadon.GiaKhuyenMai = cthd.GiaKhuyenMai;
                cthoadon.SoLuong = cthd.SoLuong;
                cthoadon.TinhTrang = cthd.TinhTrang;
                db.SubmitChanges();
                return true;
            }
            catch (SqlException ex)
            {
                throw ex;
                return false;
            }
        }

    }
}
